package com.itheima.aop;

import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Slf4j
//@Component //把该类交给spring创建对象,存到IOC容器中
//@Aspect  // 表示该类是一个切面类
public class TimeAspect3 {

    // 需求统计DepServiceImpl中的add,delete方法的执行耗时

        @Around("execution(* com.itheima.service.impl.DeptServiceImpl.add(..)) || execution(* com.itheima.service.impl.DeptServiceImpl.delete(..))")
public Object recordTime(ProceedingJoinPoint pjp) throws Throwable{

    // 1.获取开始时间
                long start=0;
                Object result;
                try {
                        start = System.currentTimeMillis();

                        // 2.执行目标对象方法
                     return pjp.proceed();
                } finally {
                        // 3.获取结束时间
                        long end = System.currentTimeMillis();
                        // 4.计算耗时并打印结果
                        log.info("共耗时:{}毫秒",end-start);
                }

                }
                }











